package api

import (
	"net/http"

	"gitee.com/go-course/go11/vblog/mvc/controllers"
	"gitee.com/go-course/go11/vblog/mvc/models"
	"github.com/gin-gonic/gin"
)

// 使用web框架: Gin
func HandleCreateBlog(c *gin.Context) {
	// 从web框架中 获取用户的请求

	// 用户参数可能通过Http Header传递过来
	c.GetHeader("CROS_TOKEN")
	// URL路径参数: /blogs/:id  --> /blogs/12  id=12
	c.Param("id")
	// URL query参数
	// GET /path?id=1234&name=Manu&value=
	c.Query("id")
	// ...
	// HTTP Boby 的参数 {"title": "文章1", "content": "xxxx"}
	ins := &models.Blog{}
	c.BindJSON(ins)

	// 处理用户的请求
	// 调用业务逻辑成来处理业务逻辑
	err := controllers.CreateBlog(ins)
	if err != nil {
		c.AbortWithError(http.StatusOK, err)
		return
	}

	// 把业务逻辑处理后的结果返回给用户
	c.JSON(http.StatusOK, ins)
}
